****** UPDATE ****** **UPDATE** 문을 사용하면 대상 테이블에 저장된 레코드의 칼럼 값을 새로운 값으로 업데이트할 수 있다. **SET** 절에는 업데이트할 칼럼 이름과 새로운 값을 명시하며, :ref:`where-clause`\ 에는 업데이트할 레코드를 추출하기 위한 조건을 명시한다. 하나의 **UPDATE** 문으로 하나의 테이블을 업데이트할 수 있다. :: UPDATE table_name SET column_name = {expr | DEFAULT} [, column_name = {expr | DEFAULT} ...] [WHERE search_condition] [LIMIT row_count] * *column_name*: 업데이트할 칼럼 이름을 지정한다. 하나 이상의 테이블에 대한 칼럼들을 지정할 수 있다. * *expr* | **DEFAULT**: 해당 칼럼의 새로운 값을 지정하며, 표현식 또는 **DEFAULT** 키워드를 값으로 지정할 수 있다. 단일 결과 레코드를 반환하는 **SELECT** 질의를 지정할 수도 있다. * *search_condition*: :ref:`where-clause`\ 에 조건식을 명시하면, 조건식을 만족하는 레코드에 대해서만 칼럼 값을 업데이트한다. * *row_count*: :ref:`limit-clause`\ 에 업데이트할 레코드 수를 명시하며, 0보다 큰 정수를 지정할 수 있다. :ref:`limit-clause`\ 을 명시하면 업데이트할 레코드 수를 한정할 수 있다. :ref:`order-by-clause`\ 을 명시하면 해당 칼럼의 순서로 레코드를 업데이트한다. :ref:`order-by-clause`\ 에 의한 업데이트는 트리거의 실행 순서나 잠금 순서를 유지하고자 할 때 유용하게 이용할 수 있다. .. note:: CUBRID 9.0부터 update join을 지원한다. 다음은 하나의 테이블에 대해 업데이트를 수행하는 예이다. .. code-block:: sql --creating a new table having all records copied from a_tbl1 CREATE TABLE a_tbl5 AS SELECT * FROM a_tbl1; SELECT * FROM a_tbl5 WHERE name IS NULL; :: id name phone ========================================================= NULL NULL '000-0000' 4 NULL '000-0000' 5 NULL '000-0000' 7 NULL '777-7777' .. code-block:: sql UPDATE a_tbl5 SET name='yyy', phone='999-9999' WHERE name IS NULL LIMIT 3; SELECT * FROM a_tbl5; :: id name phone ========================================================= NULL 'yyy' '999-9999' 1 'aaa' '000-0000' 2 'bbb' '000-0000' 3 'ccc' '333-3333' 4 'yyy' '999-9999' 5 'yyy' '999-9999' 6 'eee' '000-0000' 7 NULL '777-7777'